$(function () {

    /**
     * 1. 需求: 切换全选
     */
    $('.allsel').on('change', function () {
        //获取当前全选的选中状态值

        let bool = $(this).prop('checked')

        //赋值给其他商品//设置其他全选按钮
        $('.sinsel, .allsel').prop('checked', bool)
        //总计
        allPrice()
    })





    /**
     * 2. 需求: 取消全选 -- 只要有一个商品没有选中,就取消全选
     */
    $('.sinsel').on('change', function () {
        //获取总商品的个数
        let allGoods = $('.shopcar-body').length
        //获取选中商品的个数
        let selGoods = $('.sinsel:checked').length
        //判断
        $('.allsel').prop('checked', allGoods === selGoods)
        // console.log(allGoods ===selGoods);
        //总计
        allPrice()
    })


    /**
     * 3. 需求: 商品数量增加
     */
    $('.add').on('click', function () {
        //获取当前商品的数量
        let num = $(this).siblings('.pronum').val()
        //自增
        //赋值
        $(this).siblings('.pronum').val(++num)

        //小计
        subPrice(this, num)

        //总计
        allPrice()
    })

    /**
     * 4. 需求: 商品数量减少
     */

    $('.reduce').on('click', function () {
        //获取当前商品的数量
        let num = +$(this).siblings('.pronum').val()

        if (num === 1) return
        //自减
        //赋值
        $(this).siblings('.pronum').val(--num)

        //小计
        subPrice(this, num)

        //总计
        allPrice()
    })

    /**
     * 5. 需求: 输入商品数量
     */
    $('.pronum').on('keyup', function () {
        //获取当前输入的内容
        let num = $(this).val()

        //处理输入的内容
        num = parseInt(num)
        //判断值是否是NaN   isNaN(num)
        if (isNaN(num)) {
            $(this).val(num = 1)
        } else {
            $(this).val(num)
        }

        //小计
        subPrice(this, num)

        //总计
        allPrice()
    })

    /**
     * 6. 需求: 小计
     */
    function subPrice(obj, sNum) {
        //小计
        let price = $(obj).closest('.shopcar-body').find('.sinprice').text()
        //渲染
        $(obj).closest('.shopcar-body').find('.smallprice').text((sNum * price).toFixed(2))
    }

    /**
     * 7. 需求: 总计 - 计算选中商品的总价和总数量
     */
    function allPrice() {

        //总价
        let totalPrice = 0;

        let totalNum = 0;


        //选中商品
        $('.sinsel:checked').each(function (index, dom) {
            //选中商品的个数
            let allSum = +$(dom).closest('.shopcar-body').find('.pronum').val()
            //总个数
            totalNum += allSum;

            //选中商品的小计
            let sPrice = +$(dom).closest('.shopcar-body').find('.smallprice').text()

            //累加
            totalPrice += sPrice;
        })

        //得到总价并渲染到页面中
        $('.totalPrice').text(totalPrice);

        $('.allNum').text(totalNum);
    }



})